Hi Ray,
I don't know of anyone else who has requested such a thing or more likely I don't understand. Could you be a bit more mathematically precise in your description? Do you really want the axis velocity to be independent of the MPG rate? What is your definition of "stops changing"?
But anyway you can change speed using the Jog() command. If you command one speed and then later want a different speed just command the new speed. KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis. The new speed can be zero to stop, or the oppposite sign to reverse.
Regards
TK
Group: DynoMotion |
Message: 2379 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Tom,
Yes, the idea is the axis moves at a constant speed, regardless of how fast or how slow you spin the MPG. In my Mach3 macro implementation, I just look at the MPG A/B bits on each macropump pass. If I see a change, then I keep the axis moving. If I see the same A/B states as the previous pass, then I just stop the axis. This mode is wonderful for doing simple manual operation. I use it a LOT for things like face-milling, or edge-milling blanks to prepare them prior to running a program to machine them. Think of it as a manually-controlled G1. I find it one of the most useful modes on my current pendant.
Now, how about the first part of my question re: the Init3AnalogPlugMPG.c example? How is the move actually initiated?
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I don't know of anyone else who has requested such a thing or more likely I don't understand. Could you be a bit more mathematically precise in your description? Do you really want the axis velocity to be independent of the MPG rate? What is your definition of "stops changing"?Â
> Â
> But anyway you can change speed using the Jog() command. If you command one speed and then later want a different speed just command the new speed. KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis. The new speed can be zero to stop, or the oppposite sign to reverse.
> Â
> Regards
> TK
> Â
> Â
> Â
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 5:04 PM
> Subject: [DynoMotion] Jogging Controls
>
>
> Â
> I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
>
> Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
>
> Regards,
> Ray L.
>
|
|
Group: DynoMotion |
Message: 2380 |
From: Tom Kerekes |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Hi Ray,
I thought a macro pump would be too slow for that. The loops in KFLOP are a lot faster (180us) so you will probably want some form of averaging with a threshold.
In the Init3AnalogPlusMPG.c the commanded destination is basically "geared" to the encoder position so they track. Realize that the MPG is being sampled at about 5KHz so unless it is spinning rather fast it will be "rare" that it detects a change other than zero. When it does it will change the Dest by some amount. Assume for a moment this number is small such as 1 ustep then one ustep will be output to the Step Driver by the next Sample Time (the ratio can be a floating point number as well). If the amount is big, for example 90, then KFLOP will output a burst steps at 1MHz for 90us to effect a move of 90uSteps. This doesn't work well for steppers. With Servos it isn't too bad. The issue is the worse with a low res MPG, setup to move the axis fast at a slow MPG rate (large microstep per MPG count ratio).
We now have MPGSmooth.c code that makes use of the MoveExp command where KFLOP approaches the commanded position in an exponentially curving manner. Or you can think of this as a low pass filter. There is a Tau parameter where you can set time constant. Setting a small time constant will cause the axis to track tightly to the "steps" coming from the encoder. Setting the time constant longer will cause the axis to lag behind a bit following the "average" of what the Operator has been doing.
Regards
TK
Group: DynoMotion |
Message: 2381 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Tom,
BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I don't know of anyone else who has requested such a thing or more likely I don't understand. Could you be a bit more mathematically precise in your description? Do you really want the axis velocity to be independent of the MPG rate? What is your definition of "stops changing"?Â
> Â
> But anyway you can change speed using the Jog() command. If you command one speed and then later want a different speed just command the new speed. KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis. The new speed can be zero to stop, or the oppposite sign to reverse.
> Â
> Regards
> TK
> Â
> Â
> Â
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 5:04 PM
> Subject: [DynoMotion] Jogging Controls
>
>
> Â
> I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
>
> Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
>
> Regards,
> Ray L.
>
|
|
Group: DynoMotion |
Message: 2382 |
From: Tom Kerekes |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Hi Ray,
I think that is the same a the MPG Smooth mode I just described.
Regards
TK
Group: DynoMotion |
Message: 2384 |
From: bradodarb |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Since you guys are talking about user programs:
1) What is the max program size that can be stored/executed?
2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
Thanks in advance for any input
-Brad Murry
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I think that is the same a the MPG Smooth mode I just described.
> Â
> Regards
> TK
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:15 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Tom,
>
> BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÃÂ
> > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > ÃÂ
> > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > ÃÂ
> > Regards
> > TK
> > ÃÂ
> > ÃÂ
> > ÃÂ
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 5:04 PM
> > Subject: [DynoMotion] Jogging Controls
> >
> >
> > ÃÂ
> > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> >
> > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> >
> > Regards,
> > Ray L.
> >
>
|
|
Group: DynoMotion |
Message: 2385 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Tom,
"I thought a macro pump would be too slow for that." - So did I, but it works just fine!
You still haven't answered the thing that's got me baffled - HOW is the move initiated in Init3AnalogPlusMPG? If I just jam a change into Dest, which is all that code is doing, the axis is not moved to that position, the displayed position just instantaneously *changes* to that position.
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I thought a macro pump would be too slow for that. The loops in KFLOP are a lot faster (180us) so you will probably want some form of averaging with a threshold.
> Â
> In the Init3AnalogPlusMPG.c the commanded destination is basically "geared" to the encoder position so they track.  Realize that the MPG is being sampled at about 5KHz so unless it is spinning rather fast it will be "rare" that it detects a change other than zero. When it does it will change the Dest by some amount. Assume for a moment this number is small such as 1 ustep then one ustep will be output to the Step Driver by the next Sample Time (the ratio can be a floating point number as well).  If the amount is big, for example 90, then KFLOP will output a burst steps at 1MHz for 90us to effect a move of 90uSteps. This doesn't work well for steppers. With Servos it isn't too bad. The issue is the worse with a low res MPG, setup to move the axis fast at a slow MPG rate (large microstep per MPG count ratio).
> Â
> We now have MPGSmooth.c code that makes use of the MoveExp command where KFLOP approaches the commanded position in an exponentially curving manner. Or you can think of this as a low pass filter. There is a Tau parameter where you can set time constant. Setting a small time constant will cause the axis to track tightly to the "steps" coming from the encoder. Setting the time constant longer will cause the axis to lag behind a bit following the "average" of what the Operator has been doing.
> Â
> Regards
> TK
> Â
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 6:17 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Tom,
>
> Yes, the idea is the axis moves at a constant speed, regardless of how fast or how slow you spin the MPG. In my Mach3 macro implementation, I just look at the MPG A/B bits on each macropump pass. If I see a change, then I keep the axis moving. If I see the same A/B states as the previous pass, then I just stop the axis. This mode is wonderful for doing simple manual operation. I use it a LOT for things like face-milling, or edge-milling blanks to prepare them prior to running a program to machine them. Think of it as a manually-controlled G1. I find it one of the most useful modes on my current pendant.
>
> Now, how about the first part of my question re: the Init3AnalogPlugMPG.c example? How is the move actually initiated?
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÃÂ
> > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > ÃÂ
> > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > ÃÂ
> > Regards
> > TK
> > ÃÂ
> > ÃÂ
> > ÃÂ
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 5:04 PM
> > Subject: [DynoMotion] Jogging Controls
> >
> >
> > ÃÂ
> > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> >
> > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> >
> > Regards,
> > Ray L.
> >
>
|
|
Group: DynoMotion |
Message: 2386 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Brad,
I've been thinking that is needed, and that's basically where I'm going with the code I'm developing. Most of it is in my Init.c - limit handling, pendant code, etc.
Something else that would be nice (and maybe it's there, and I just haven't grok'd it yet...) would be a generic message-passing mechanism between the DSP and the application. I keep coming across things I'd like to do that require knowing something about the state of the application (for example, whether a G-code program is currently running or not). The new stuff Tom added last week is a BIG help, giving my pendant code the ability to do Run/Stop, etc.
I'm also toying with adding a hot-key configuration page to KMotionCNC, now that I've figured out how to wire hot-keys in for most of the functions I'd want them for.
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@...> wrote:
>
> Since you guys are talking about user programs:
>
> 1) What is the max program size that can be stored/executed?
>
> 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
>
> Thanks in advance for any input
> -Brad Murry
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > Â
> > I think that is the same a the MPG Smooth mode I just described.
> > Â
> > Regards
> > TK
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 7:15 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > Â
> > Tom,
> >
> > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÃÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > > ÃÂ
> > > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÃÂ
> > > Regards
> > > TK
> > > ÃÂ
> > > ÃÂ
> > > ÃÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÃÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2387 |
From: Tom Kerekes |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Hi Ray,
I tried to answer that. Basically KFLOP knows how many Steps have been output to the Stepper Driver so it knows where the motor theoretically "is". Every sample time (90us) it compares that with the desired Destination where the motor is supposed to be next. Based on the difference it sets a Step/Dir Generator to an appropriate frequency so it is at that destination by the next sample time. So for example if the Dest suddenly changes by 90 counts (to make the math easy) the Step/Dir generator will be calculated to be set at 1MHz to output 90 Steps by the next Sample time. Of course this would most certainly cause a motor miss-step.
Of course normally when doing coordinated motion, or independent moves, or Jogs, or MoveExp commands trajectory equations are used so the Dest position changes in a more gradual manner. It may well need to change 90usteps between samples but the previous delta is likely to have been 89.8.
Hope this is clearer :}
Regards
TK
Group: DynoMotion |
Message: 2388 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Tom,
OK, that makes sense. So just jamming a new value into Dest will make it move, but sounds like it may not necessarily obey the accel and vel limits?
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I tried to answer that. Basically KFLOP knows how many Steps have been output to the Stepper Driver so it knows where the motor theoretically "is". Every sample time (90us) it compares that with the desired Destination where the motor is supposed to be next. Based on the difference it sets a Step/Dir Generator to an appropriate frequency so it is at that destination by the next sample time.  So for example if the Dest suddenly changes by 90 counts (to make the math easy) the Step/Dir generator will be calculated to be set at 1MHz to output 90 Steps by the next Sample time. Of course this would most certainly cause a motor miss-step.
> Â
> Of course normally when doing coordinated motion, or independent moves, or Jogs, or MoveExp commands trajectory equations are used so the Dest position changes in a more gradual manner. It may well need to change 90usteps between samples but the previous delta is likely to have been 89.8.
> Â
> Hope this is clearer :}
> Â
> Regards
> TK
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:45 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Tom,
>
> "I thought a macro pump would be too slow for that." - So did I, but it works just fine!
>
> You still haven't answered the thing that's got me baffled - HOW is the move initiated in Init3AnalogPlusMPG? If I just jam a change into Dest, which is all that code is doing, the axis is not moved to that position, the displayed position just instantaneously *changes* to that position.
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÃÂ
> > I thought a macro pump would be too slow for that.ÃÂ The loops in KFLOP are a lot faster (180us) so you will probably want some form of averaging with a threshold.
> > ÃÂ
> > In the Init3AnalogPlusMPG.c the commanded destination is basically "geared" to the encoder position so they track.ÃÂ ÃÂ Realize that the MPG is being sampled at about 5KHz so unless it is spinning rather fast it will be "rare" that it detects a change other than zero.ÃÂ When it does it will change the Dest by some amount.ÃÂ Assume for a moment this number is small such as 1 ustep then one ustep will be output to the Step Driver by the next Sample Time (the ratio can be a floating point number as well).ÃÂ ÃÂ If the amount is big, for example 90, then KFLOP will output a burst steps at 1MHz for 90us to effect a move of 90uSteps.ÃÂ This doesn't work well for steppers.ÃÂ With Servos it isn't too bad.ÃÂ The issue is the worse with a low res MPG, setup to move the axis fast at a slow MPGÃÂ rate (large microstep per MPG count ratio).
> > ÃÂ
> > We now haveÃÂ MPGSmooth.c code that makes use of the MoveExp command where KFLOP approaches the commanded position in an exponentially curving manner.ÃÂ Or you can think of this as a low pass filter.ÃÂ There is a Tau parameter where you can set time constant.ÃÂ Setting a small time constant will cause the axis to track tightly to the "steps" coming from the encoder.ÃÂ Setting the time constant longer will cause the axis to lag behind a bit following the "average" of what the Operator has been doing.
> > ÃÂ
> > Regards
> > TK
> > ÃÂ
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 6:17 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > ÃÂ
> > Tom,
> >
> > Yes, the idea is the axis moves at a constant speed, regardless of how fast or how slow you spin the MPG. In my Mach3 macro implementation, I just look at the MPG A/B bits on each macropump pass. If I see a change, then I keep the axis moving. If I see the same A/B states as the previous pass, then I just stop the axis. This mode is wonderful for doing simple manual operation. I use it a LOT for things like face-milling, or edge-milling blanks to prepare them prior to running a program to machine them. Think of it as a manually-controlled G1. I find it one of the most useful modes on my current pendant.
> >
> > Now, how about the first part of my question re: the Init3AnalogPlugMPG.c example? How is the move actually initiated?
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÃâÃÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃâàCould you be a bit more mathematically precise in your description?ÃâàDo you really want the axis velocity to be independent of the MPG rate?ÃâàWhat is your definition of "stops changing"?ÃâÃÂ
> > > ÃâÃÂ
> > > But anyway you can change speed using the Jog() command.ÃâàIf you command one speed and then later want a different speed just command the new speed.ÃâàKFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃâàThe new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÃâÃÂ
> > > Regards
> > > TK
> > > ÃâÃÂ
> > > ÃâÃÂ
> > > ÃâÃÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÃâÃÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2389 |
From: Tom Kerekes |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Correct.
Group: DynoMotion |
Message: 2390 |
From: Tom Kerekes |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Hi Brad,
The compiled programs code (.text), variables (.bss), and data (.data) are all linked into the space for a Thread. Each Thread space is 64KBytes. But Thread7 is larger at 5 x 64KBytes. You may also combine Thread spaces such that if the next thread is not used it is ok to overflow into it. These are somewhat defined in PC_DSP.h as:
#define USER_PROG_ADDRESS_KFLOP 0x80050000 // where first user program is loaded
#define MAX_USER_PROG_SIZE_KFLOP 0x10000 // space between each thread/user program
Regarding a Master Program: yes we are probably at a point of doing something like that to allow a User or an Application to select standard methods of homing and such.
Regards
TK
Group: DynoMotion |
Message: 2391 |
From: himykabibble |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Tom,
In MPGSmooth.c, I notice there are *two* calls to WaitNextTimeSlice() for each iteration of the loop. Won't that cause the code to be executed only every other time slice? Is that intentional?
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Brad,
> Â
> The compiled programs code (.text), variables (.bss), and data (.data) are all linked into the space for a Thread. Each Thread space is 64KBytes. But Thread7 is larger at 5 x 64KBytes. You may also combine Thread spaces such that if the next thread is not used it is ok to overflow into it. These are somewhat defined in PC_DSP.h as:
> Â
> USER_PROG_ADDRESS_KFLOP 0x80050000 // where first user program is loaded#define
> Â
> Regarding a Master Program: yes we are probably at a point of doing something like that to allow a User or an Application to select standard methods of homing and such.
> Â
> Regards
> TKMAX_USER_PROG_SIZE_KFLOP 0x10000 // space between each thread/user program
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:39 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Since you guys are talking about user programs:
>
> 1) What is the max program size that can be stored/executed?
>
> 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
>
> Thanks in advance for any input
> -Brad Murry
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÃÂ
> > I think that is the same a the MPG Smooth mode I just described.
> > ÃÂ
> > Regards
> > TK
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 7:15 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > ÃÂ
> > Tom,
> >
> > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÃâÃÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃâàCould you be a bit more mathematically precise in your description?ÃâàDo you really want the axis velocity to be independent of the MPG rate?ÃâàWhat is your definition of "stops changing"?ÃâÃÂ
> > > ÃâÃÂ
> > > But anyway you can change speed using the Jog() command.ÃâàIf you command one speed and then later want a different speed just command the new speed.ÃâàKFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃâàThe new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÃâÃÂ
> > > Regards
> > > TK
> > > ÃâÃÂ
> > > ÃâÃÂ
> > > ÃâÃÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÃâÃÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
>
>
>
>
> #define
>
|
|
Group: DynoMotion |
Message: 2392 |
From: TK |
Date: 11/21/2011 |
Subject: Re: Jogging Controls |
Oops remove the topmost one
TK On Nov 21, 2011, at 9:45 PM, "himykabibble" <jagboy@...> wrote:
Tom,
In MPGSmooth.c, I notice there are *two* calls to WaitNextTimeSlice() for each iteration of the loop. Won't that cause the code to be executed only every other time slice? Is that intentional?
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Brad,
> Â
> The compiled programs code (.text), variables (.bss), and data (.data) are all linked into the space for a Thread. Each Thread space is 64KBytes. But Thread7 is larger at 5 x 64KBytes. You may also combine Thread spaces such that if the next thread is not used it is ok to overflow into it. These are somewhat defined in PC_DSP.h as:
> Â
> USER_PROG_ADDRESS_KFLOP 0x80050000 // where first user program is loaded#define
> Â
> Regarding a Master Program: yes we are probably at a point of doing something like that to allow a User or an Application to select standard methods of homing and such.
> Â
> Regards
> TKMAX_USER_PROG_SIZE_KFLOP 0x10000 // space between each thread/user program
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:39 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Since you guys are talking about user programs:
>
> 1) What is the max program size that can be stored/executed?
>
> 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
>
> Thanks in advance for any input
> -Brad Murry
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÂÂ
> > I think that is the same a the MPG Smooth mode I just described.
> > ÂÂ
> > Regards
> > TK
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 7:15 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > ÂÂ
> > Tom,
> >
> > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÂÂÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand. Could you be a bit more mathematically precise in your description? Do you really want the axis velocity to be independent of the MPG rate? What is your definition of "stops changing"?ÂÂÂ
> > > ÂÂÂ
> > > But anyway you can change speed using the Jog() command. If you command one speed and then later want a different speed just command the new speed. KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis. The new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÂÂÂ
> > > Regards
> > > TK
> > > ÂÂÂ
> > > ÂÂÂ
> > > ÂÂÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÂÂÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
>
>
>
>
> #define
>
|
|
Group: DynoMotion |
Message: 2396 |
From: Wcarrothers |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
One thing I would point out, which I just love about Mach + flop working. Is that the rotary incoder moving is independent from mach, for example with my parallel machine I have to choose with control j keyboard or mpg. With the k the Mach alwayse has keyboard jog selected but the pendant will also work. S you would use the keyboard for your constant moves and the dial for variable ones. I like not haveig to choose or rather the keyboard is always alive for moves if I need it with out having to cont j
I would suggest on your pendant you set up a selector for speed and 4 direction buttons for direction for this. Can be easily done with all the io the k gives..
B.
On Nov 21, 2011, at 11:50 PM, "himykabibble" < jagboy@...> wrote:
Tom,
OK, that makes sense. So just jamming a new value into Dest will make it move, but sounds like it may not necessarily obey the accel and vel limits?
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Ray,
> Â
> I tried to answer that. Basically KFLOP knows how many Steps have been output to the Stepper Driver so it knows where the motor theoretically "is". Every sample time (90us) it compares that with the desired Destination where the motor is supposed to be next. Based on the difference it sets a Step/Dir Generator to an appropriate frequency so it is at that destination by the next sample time.  So for example if the Dest suddenly changes by 90 counts (to make the math easy) the Step/Dir generator will be calculated to be set at 1MHz to output 90 Steps by the next Sample time. Of course this would most certainly cause a motor miss-step.
> Â
> Of course normally when doing coordinated motion, or independent moves, or Jogs, or MoveExp commands trajectory equations are used so the Dest position changes in a more gradual manner. It may well need to change 90usteps between samples but the previous delta is likely to have been 89.8.
> Â
> Hope this is clearer :}
> Â
> Regards
> TK
>
> From: himykabibble <jagboy@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:45 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Tom,
>
> "I thought a macro pump would be too slow for that." - So did I, but it works just fine!
>
> You still haven't answered the thing that's got me baffled - HOW is the move initiated in Init3AnalogPlusMPG? If I just jam a change into Dest, which is all that code is doing, the axis is not moved to that position, the displayed position just instantaneously *changes* to that position.
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÂÂ
> > I thought a macro pump would be too slow for that. The loops in KFLOP are a lot faster (180us) so you will probably want some form of averaging with a threshold.
> > ÂÂ
> > In the Init3AnalogPlusMPG.c the commanded destination is basically "geared" to the encoder position so they track.  Realize that the MPG is being sampled at about 5KHz so unless it is spinning rather fast it will be "rare" that it detects a change other than zero. When it does it will change the Dest by some amount. Assume for a moment this number is small such as 1 ustep then one ustep will be output to the Step Driver by the next Sample Time (the ratio can be a floating point number as well).  If the amount is big, for example 90, then KFLOP will output a burst steps at 1MHz for 90us to effect a move of 90uSteps. This doesn't work well for steppers. With Servos it isn't too bad. The issue is the worse with a low res MPG, setup to move the axis fast at a slow MPG rate (large microstep per MPG count ratio).
> > ÂÂ
> > We now have MPGSmooth.c code that makes use of the MoveExp command where KFLOP approaches the commanded position in an exponentially curving manner. Or you can think of this as a low pass filter. There is a Tau parameter where you can set time constant. Setting a small time constant will cause the axis to track tightly to the "steps" coming from the encoder. Setting the time constant longer will cause the axis to lag behind a bit following the "average" of what the Operator has been doing.
> > ÂÂ
> > Regards
> > TK
> > ÂÂ
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 6:17 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > ÂÂ
> > Tom,
> >
> > Yes, the idea is the axis moves at a constant speed, regardless of how fast or how slow you spin the MPG. In my Mach3 macro implementation, I just look at the MPG A/B bits on each macropump pass. If I see a change, then I keep the axis moving. If I see the same A/B states as the previous pass, then I just stop the axis. This mode is wonderful for doing simple manual operation. I use it a LOT for things like face-milling, or edge-milling blanks to prepare them prior to running a program to machine them. Think of it as a manually-controlled G1. I find it one of the most useful modes on my current pendant.
> >
> > Now, how about the first part of my question re: the Init3AnalogPlugMPG.c example? How is the move actually initiated?
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÂÂÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand. Could you be a bit more mathematically precise in your description? Do you really want the axis velocity to be independent of the MPG rate? What is your definition of "stops changing"?ÂÂÂ
> > > ÂÂÂ
> > > But anyway you can change speed using the Jog() command. If you command one speed and then later want a different speed just command the new speed. KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis. The new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÂÂÂ
> > > Regards
> > > TK
> > > ÂÂÂ
> > > ÂÂÂ
> > > ÂÂÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÂÂÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2397 |
From: himykabibble |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
I can't even remember the last time I jogged my machine using the keyboard - I do everything with the pendant. It allows me to jog all four axes in several different modes, turn the spindle and coolant on and off, start, stop, feed-hold and re-wind a G-code program, and set FRO, SSO, and jog rates. And, it requires only 5 I/Os.
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, Wcarrothers <wcarrothers@...> wrote:
>
> One thing I would point out, which I just love about Mach + flop working. Is that the rotary incoder moving is independent from mach, for example with my parallel machine I have to choose with control j keyboard or mpg. With the k the Mach alwayse has keyboard jog selected but the pendant will also work. S you would use the keyboard for your constant moves and the dial for variable ones. I like not haveig to choose or rather the keyboard is always alive for moves if I need it with out having to cont j
>
> I would suggest on your pendant you set up a selector for speed and 4 direction buttons for direction for this. Can be easily done with all the io the k gives..
>
> B.
>
>
>
>
>
>
> On Nov 21, 2011, at 11:50 PM, "himykabibble" <jagboy@...> wrote:
>
> > Tom,
> >
> > OK, that makes sense. So just jamming a new value into Dest will make it move, but sounds like it may not necessarily obey the accel and vel limits?
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > Ã
> > > I tried to answer that.à Basically KFLOP knows how many Steps have been output to the Stepper Driver so it knows where the motor theoretically "is".à Every sample time (90us) it comparesà that with the desired Destination whereà the motor is supposed to be next.à Based on the difference ità sets a Step/Dir Generator to an appropriate frequency so it is at that destination by the next sample time.à à So for example if the Dest suddenly changes by 90 counts (to make the math easy) the Step/Dir generator will be calculated to be set at 1MHz to output 90 Steps by the next Sample time.à Of course this would most certainly cause a motor miss-step.
> > > Ã
> > > Of course normally when doing coordinated motion, or independent moves, or Jogs, or MoveExp commands trajectory equations are used so the Dest position changes in a more gradual manner.Ã It may well need to change 90usteps between samples but the previous delta is likely to have been 89.8.
> > > Ã
> > > Hope this is clearer :}
> > > Ã
> > > Regards
> > > TK
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 7:45 PM
> > > Subject: [DynoMotion] Re: Jogging Controls
> > >
> > >
> > > Ã
> > > Tom,
> > >
> > > "I thought a macro pump would be too slow for that." - So did I, but it works just fine!
> > >
> > > You still haven't answered the thing that's got me baffled - HOW is the move initiated in Init3AnalogPlusMPG? If I just jam a change into Dest, which is all that code is doing, the axis is not moved to that position, the displayed position just instantaneously *changes* to that position.
> > >
> > > Regards,
> > > Ray L.
> > >
> > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > >
> > > > Hi Ray,
> > > > ÃâÃ
> > > > I thought a macro pump would be too slow for that.Ãâà The loops in KFLOP are a lot faster (180us) so you will probably want some form of averaging with a threshold.
> > > > ÃâÃ
> > > > In the Init3AnalogPlusMPG.c the commanded destination is basically "geared" to the encoder position so they track.Ãâà Ãâà Realize that the MPG is being sampled at about 5KHz so unless it is spinning rather fast it will be "rare" that it detects a change other than zero.Ãâà When it does it will change the Dest by some amount.Ãâà Assume for a moment this number is small such as 1 ustep then one ustep will be output to the Step Driver by the next Sample Time (the ratio can be a floating point number as well).Ãâà Ãâà If the amount is big, for example 90, then KFLOP will output a burst steps at 1MHz for 90us to effect a move of 90uSteps.Ãâà This doesn't work well for steppers.Ãâà With Servos it isn't too bad.Ãâà The issue is the worse with a low res MPG, setup to move the axis fast at a slow MPGÃâà rate (large microstep per MPG count ratio).
> > > > ÃâÃ
> > > > We now haveÃâà MPGSmooth.c code that makes use of the MoveExp command where KFLOP approaches the commanded position in an exponentially curving manner.Ãâà Or you can think of this as a low pass filter.Ãâà There is a Tau parameter where you can set time constant.Ãâà Setting a small time constant will cause the axis to track tightly to the "steps" coming from the encoder.Ãâà Setting the time constant longer will cause the axis to lag behind a bit following the "average" of what the Operator has been doing.
> > > > ÃâÃ
> > > > Regards
> > > > TK
> > > > ÃâÃ
> > > >
> > > > From: himykabibble <jagboy@>
> > > > To: DynoMotion@yahoogroups.com
> > > > Sent: Monday, November 21, 2011 6:17 PM
> > > > Subject: [DynoMotion] Re: Jogging Controls
> > > >
> > > >
> > > > ÃâÃ
> > > > Tom,
> > > >
> > > > Yes, the idea is the axis moves at a constant speed, regardless of how fast or how slow you spin the MPG. In my Mach3 macro implementation, I just look at the MPG A/B bits on each macropump pass. If I see a change, then I keep the axis moving. If I see the same A/B states as the previous pass, then I just stop the axis. This mode is wonderful for doing simple manual operation. I use it a LOT for things like face-milling, or edge-milling blanks to prepare them prior to running a program to machine them. Think of it as a manually-controlled G1. I find it one of the most useful modes on my current pendant.
> > > >
> > > > Now, how about the first part of my question re: the Init3AnalogPlugMPG.c example? How is the move actually initiated?
> > > >
> > > > Regards,
> > > > Ray L.
> > > >
> > > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > > >
> > > > > Hi Ray,
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÆ'ââ¬Å¡Ãâà Could you be a bit more mathematically precise in your description?ÃÆ'ââ¬Å¡Ãâà Do you really want the axis velocity to be independent of the MPG rate?ÃÆ'ââ¬Å¡Ãâà What is your definition of "stops changing"?ÃÆ'ââ¬Å¡ÃâÃ
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > But anyway you can change speed using the Jog() command.ÃÆ'ââ¬Å¡Ãâà If you command one speed and then later want a different speed just command the new speed.ÃÆ'ââ¬Å¡Ãâà KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÆ'ââ¬Å¡Ãâà The new speed can be zero to stop, or the oppposite sign to reverse.
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > Regards
> > > > > TK
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > >
> > > > > From: himykabibble <jagboy@>
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Sent: Monday, November 21, 2011 5:04 PM
> > > > > Subject: [DynoMotion] Jogging Controls
> > > > >
> > > > >
> > > > > ÃÆ'ââ¬Å¡ÃâÃ
> > > > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > > > >
> > > > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > > > >
> > > > > Regards,
> > > > > Ray L.
> > > > >
> > > >
> > >
> >
> >
>
|
|
Group: DynoMotion |
Message: 2398 |
From: bradodarb |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
I think this sort of "super program" will be either a community effort or something Dyno will bake in. I'd be happy to colaborate with you and others who have something to offer towards this end.
I'm sure there is a lot of experience to be shared, and only a fool learns from his own mistakes.
-Brad Murry
--- In DynoMotion@yahoogroups.com, "himykabibble" <jagboy@...> wrote:
>
> Brad,
>
> I've been thinking that is needed, and that's basically where I'm going with the code I'm developing. Most of it is in my Init.c - limit handling, pendant code, etc.
>
> Something else that would be nice (and maybe it's there, and I just haven't grok'd it yet...) would be a generic message-passing mechanism between the DSP and the application. I keep coming across things I'd like to do that require knowing something about the state of the application (for example, whether a G-code program is currently running or not). The new stuff Tom added last week is a BIG help, giving my pendant code the ability to do Run/Stop, etc.
>
> I'm also toying with adding a hot-key configuration page to KMotionCNC, now that I've figured out how to wire hot-keys in for most of the functions I'd want them for.
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@> wrote:
> >
> > Since you guys are talking about user programs:
> >
> > 1) What is the max program size that can be stored/executed?
> >
> > 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
> >
> > Thanks in advance for any input
> > -Brad Murry
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > Â
> > > I think that is the same a the MPG Smooth mode I just described.
> > > Â
> > > Regards
> > > TK
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 7:15 PM
> > > Subject: [DynoMotion] Re: Jogging Controls
> > >
> > >
> > > Â
> > > Tom,
> > >
> > > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> > >
> > > Regards,
> > > Ray L.
> > >
> > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > >
> > > > Hi Ray,
> > > > ÃÂ
> > > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > > > ÃÂ
> > > > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > > > ÃÂ
> > > > Regards
> > > > TK
> > > > ÃÂ
> > > > ÃÂ
> > > > ÃÂ
> > > >
> > > > From: himykabibble <jagboy@>
> > > > To: DynoMotion@yahoogroups.com
> > > > Sent: Monday, November 21, 2011 5:04 PM
> > > > Subject: [DynoMotion] Jogging Controls
> > > >
> > > >
> > > > ÃÂ
> > > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > > >
> > > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > > >
> > > > Regards,
> > > > Ray L.
> > > >
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2399 |
From: bradodarb |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
Hello Tom,
Did you have plans for providing this type of common functionality? Do you think this should be executed as a 'user program' or is should some of it be 'baked in' as an extension of KMotion.dll?
Do you have a list of funtionality that should be housed under this module?
1)A big one as you mentioned would be various homing routines that could be set via an enumeration/int.
2)Limit switch logic...
3)Some sort of polling framework or virtual interrupts would be nice for IO
I'm sure there are more that could be added....
-Brad Murry
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Brad,
> Â
> The compiled programs code (.text), variables (.bss), and data (.data) are all linked into the space for a Thread. Each Thread space is 64KBytes. But Thread7 is larger at 5 x 64KBytes. You may also combine Thread spaces such that if the next thread is not used it is ok to overflow into it. These are somewhat defined in PC_DSP.h as:
> Â
> USER_PROG_ADDRESS_KFLOP 0x80050000 // where first user program is loaded#define
> Â
> Regarding a Master Program: yes we are probably at a point of doing something like that to allow a User or an Application to select standard methods of homing and such.
> Â
> Regards
> TKMAX_USER_PROG_SIZE_KFLOP 0x10000 // space between each thread/user program
>
> From: bradodarb <bradodarb@...>
> To: DynoMotion@yahoogroups.com
> Sent: Monday, November 21, 2011 7:39 PM
> Subject: [DynoMotion] Re: Jogging Controls
>
>
> Â
> Since you guys are talking about user programs:
>
> 1) What is the max program size that can be stored/executed?
>
> 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
>
> Thanks in advance for any input
> -Brad Murry
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Ray,
> > ÃÂ
> > I think that is the same a the MPG Smooth mode I just described.
> > ÃÂ
> > Regards
> > TK
> >
> > From: himykabibble <jagboy@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 7:15 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > ÃÂ
> > Tom,
> >
> > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÃâÃÂ
> > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃâàCould you be a bit more mathematically precise in your description?ÃâàDo you really want the axis velocity to be independent of the MPG rate?ÃâàWhat is your definition of "stops changing"?ÃâÃÂ
> > > ÃâÃÂ
> > > But anyway you can change speed using the Jog() command.ÃâàIf you command one speed and then later want a different speed just command the new speed.ÃâàKFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃâàThe new speed can be zero to stop, or the oppposite sign to reverse.
> > > ÃâÃÂ
> > > Regards
> > > TK
> > > ÃâÃÂ
> > > ÃâÃÂ
> > > ÃâÃÂ
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 5:04 PM
> > > Subject: [DynoMotion] Jogging Controls
> > >
> > >
> > > ÃâÃÂ
> > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > >
> > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > >
> > > Regards,
> > > Ray L.
> > >
> >
>
>
>
>
>
> #define
>
|
|
Group: DynoMotion |
Message: 2400 |
From: himykabibble |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
Brad,
It is my habit to post most of the stuff I come up with for others to benefit from, and I intend to do that here, once I get it all done. I'm trying to keep things well documented, and generic enough to be easily used by others. I"m bringing up all my functionality under both Mach3 and KMotionCNC, sharing as much code as possible (which is most of it).
While none of this stuff is particularly complex or difficult, there is a pretty good learning curve here, and I think it would be very difficult for a non-programmer to bring up more than basic functionality. So, I hope what I'm doing can serve as at least a starting point for people to get them going faster, with a lot of functionality, then they can make incremental changes from there.
Regards,
Ray L.
--- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@...> wrote:
>
> I think this sort of "super program" will be either a community effort or something Dyno will bake in. I'd be happy to colaborate with you and others who have something to offer towards this end.
>
> I'm sure there is a lot of experience to be shared, and only a fool learns from his own mistakes.
>
> -Brad Murry
>
>
> --- In DynoMotion@yahoogroups.com, "himykabibble" <jagboy@> wrote:
> >
> > Brad,
> >
> > I've been thinking that is needed, and that's basically where I'm going with the code I'm developing. Most of it is in my Init.c - limit handling, pendant code, etc.
> >
> > Something else that would be nice (and maybe it's there, and I just haven't grok'd it yet...) would be a generic message-passing mechanism between the DSP and the application. I keep coming across things I'd like to do that require knowing something about the state of the application (for example, whether a G-code program is currently running or not). The new stuff Tom added last week is a BIG help, giving my pendant code the ability to do Run/Stop, etc.
> >
> > I'm also toying with adding a hot-key configuration page to KMotionCNC, now that I've figured out how to wire hot-keys in for most of the functions I'd want them for.
> >
> > Regards,
> > Ray L.
> >
> > --- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@> wrote:
> > >
> > > Since you guys are talking about user programs:
> > >
> > > 1) What is the max program size that can be stored/executed?
> > >
> > > 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
> > >
> > > Thanks in advance for any input
> > > -Brad Murry
> > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > >
> > > > Hi Ray,
> > > > Â
> > > > I think that is the same a the MPG Smooth mode I just described.
> > > > Â
> > > > Regards
> > > > TK
> > > >
> > > > From: himykabibble <jagboy@>
> > > > To: DynoMotion@yahoogroups.com
> > > > Sent: Monday, November 21, 2011 7:15 PM
> > > > Subject: [DynoMotion] Re: Jogging Controls
> > > >
> > > >
> > > > Â
> > > > Tom,
> > > >
> > > > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> > > >
> > > > Regards,
> > > > Ray L.
> > > >
> > > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > > >
> > > > > Hi Ray,
> > > > > ÃÂ
> > > > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > > > > ÃÂ
> > > > > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > > > > ÃÂ
> > > > > Regards
> > > > > TK
> > > > > ÃÂ
> > > > > ÃÂ
> > > > > ÃÂ
> > > > >
> > > > > From: himykabibble <jagboy@>
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Sent: Monday, November 21, 2011 5:04 PM
> > > > > Subject: [DynoMotion] Jogging Controls
> > > > >
> > > > >
> > > > > ÃÂ
> > > > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > > > >
> > > > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > > > >
> > > > > Regards,
> > > > > Ray L.
> > > > >
> > > >
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2401 |
From: bradodarb |
Date: 11/22/2011 |
Subject: Re: Jogging Controls |
Sounds great, I'll make a point to have a good look at your contributions and I like your enthusiasm. I also think there is likely a wealth of information and experience in this forum, whether presented by professional developers like you or I or solutions used by non developers that were may have been guided by Tom's wise hand.
There are some basic motion control fuctions that are not CNC specific and some may be more obvious than others.
I'm not even sure that the whole thing should purely be a user program, it is likely that some things may be cleaner and more flexible if implemented in other places.
-Brad Murry
--- In DynoMotion@yahoogroups.com, "himykabibble" <jagboy@...> wrote:
>
> Brad,
>
> It is my habit to post most of the stuff I come up with for others to benefit from, and I intend to do that here, once I get it all done. I'm trying to keep things well documented, and generic enough to be easily used by others. I"m bringing up all my functionality under both Mach3 and KMotionCNC, sharing as much code as possible (which is most of it).
>
> While none of this stuff is particularly complex or difficult, there is a pretty good learning curve here, and I think it would be very difficult for a non-programmer to bring up more than basic functionality. So, I hope what I'm doing can serve as at least a starting point for people to get them going faster, with a lot of functionality, then they can make incremental changes from there.
>
> Regards,
> Ray L.
>
> --- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@> wrote:
> >
> > I think this sort of "super program" will be either a community effort or something Dyno will bake in. I'd be happy to colaborate with you and others who have something to offer towards this end.
> >
> > I'm sure there is a lot of experience to be shared, and only a fool learns from his own mistakes.
> >
> > -Brad Murry
> >
> >
> > --- In DynoMotion@yahoogroups.com, "himykabibble" <jagboy@> wrote:
> > >
> > > Brad,
> > >
> > > I've been thinking that is needed, and that's basically where I'm going with the code I'm developing. Most of it is in my Init.c - limit handling, pendant code, etc.
> > >
> > > Something else that would be nice (and maybe it's there, and I just haven't grok'd it yet...) would be a generic message-passing mechanism between the DSP and the application. I keep coming across things I'd like to do that require knowing something about the state of the application (for example, whether a G-code program is currently running or not). The new stuff Tom added last week is a BIG help, giving my pendant code the ability to do Run/Stop, etc.
> > >
> > > I'm also toying with adding a hot-key configuration page to KMotionCNC, now that I've figured out how to wire hot-keys in for most of the functions I'd want them for.
> > >
> > > Regards,
> > > Ray L.
> > >
> > > --- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@> wrote:
> > > >
> > > > Since you guys are talking about user programs:
> > > >
> > > > 1) What is the max program size that can be stored/executed?
> > > >
> > > > 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
> > > >
> > > > Thanks in advance for any input
> > > > -Brad Murry
> > > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > > >
> > > > > Hi Ray,
> > > > > Â
> > > > > I think that is the same a the MPG Smooth mode I just described.
> > > > > Â
> > > > > Regards
> > > > > TK
> > > > >
> > > > > From: himykabibble <jagboy@>
> > > > > To: DynoMotion@yahoogroups.com
> > > > > Sent: Monday, November 21, 2011 7:15 PM
> > > > > Subject: [DynoMotion] Re: Jogging Controls
> > > > >
> > > > >
> > > > > Â
> > > > > Tom,
> > > > >
> > > > > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> > > > >
> > > > > Regards,
> > > > > Ray L.
> > > > >
> > > > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > > > >
> > > > > > Hi Ray,
> > > > > > ÃÂ
> > > > > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃÂ Could you be a bit more mathematically precise in your description?ÃÂ Do you really want the axis velocity to be independent of the MPG rate?ÃÂ What is your definition of "stops changing"?ÃÂ
> > > > > > ÃÂ
> > > > > > But anyway you can change speed using the Jog() command.ÃÂ If you command one speed and then later want a different speed just command the new speed.ÃÂ KFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃÂ The new speed can be zero to stop, or the oppposite sign to reverse.
> > > > > > ÃÂ
> > > > > > Regards
> > > > > > TK
> > > > > > ÃÂ
> > > > > > ÃÂ
> > > > > > ÃÂ
> > > > > >
> > > > > > From: himykabibble <jagboy@>
> > > > > > To: DynoMotion@yahoogroups.com
> > > > > > Sent: Monday, November 21, 2011 5:04 PM
> > > > > > Subject: [DynoMotion] Jogging Controls
> > > > > >
> > > > > >
> > > > > > ÃÂ
> > > > > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > > > > >
> > > > > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > > > > >
> > > > > > Regards,
> > > > > > Ray L.
> > > > > >
> > > > >
> > > >
> > >
> >
>
|
|
Group: DynoMotion |
Message: 2402 |
From: bradodarb |
Date: 11/23/2011 |
Subject: Re: Jogging Controls |
4)
Recorder
It would be nice to collect IO data over an axis move range. I use this a lot on machines that measure the part prior to performing operations. Sometimes it is OK to poll while moving at a reduced feed rate but for fast measuring it would probably need to be implemented as User Program.
Anyone else have ideas?
-Brad Murry
--- In DynoMotion@yahoogroups.com, "bradodarb" <bradodarb@...> wrote:
>
> Hello Tom,
>
> Did you have plans for providing this type of common functionality? Do you think this should be executed as a 'user program' or is should some of it be 'baked in' as an extension of KMotion.dll?
>
> Do you have a list of funtionality that should be housed under this module?
>
> 1)A big one as you mentioned would be various homing routines that could be set via an enumeration/int.
>
> 2)Limit switch logic...
>
> 3)Some sort of polling framework or virtual interrupts would be nice for IO
>
>
> I'm sure there are more that could be added....
>
>
> -Brad Murry
>
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Brad,
> > Â
> > The compiled programs code (.text), variables (.bss), and data (.data) are all linked into the space for a Thread. Each Thread space is 64KBytes. But Thread7 is larger at 5 x 64KBytes. You may also combine Thread spaces such that if the next thread is not used it is ok to overflow into it. These are somewhat defined in PC_DSP.h as:
> > Â
> > USER_PROG_ADDRESS_KFLOP 0x80050000 // where first user program is loaded#define
> > Â
> > Regarding a Master Program: yes we are probably at a point of doing something like that to allow a User or an Application to select standard methods of homing and such.
> > Â
> > Regards
> > TKMAX_USER_PROG_SIZE_KFLOP 0x10000 // space between each thread/user program
> >
> > From: bradodarb <bradodarb@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Monday, November 21, 2011 7:39 PM
> > Subject: [DynoMotion] Re: Jogging Controls
> >
> >
> > Â
> > Since you guys are talking about user programs:
> >
> > 1) What is the max program size that can be stored/executed?
> >
> > 2) Has anyone here created or thout about creating something of a "Master Program" that handles common functionality (homing, limits, jogging, etc....) and uses persistent data to communicate and sync with a host program
> >
> > Thanks in advance for any input
> > -Brad Murry
> > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > >
> > > Hi Ray,
> > > ÃÂ
> > > I think that is the same a the MPG Smooth mode I just described.
> > > ÃÂ
> > > Regards
> > > TK
> > >
> > > From: himykabibble <jagboy@>
> > > To: DynoMotion@yahoogroups.com
> > > Sent: Monday, November 21, 2011 7:15 PM
> > > Subject: [DynoMotion] Re: Jogging Controls
> > >
> > >
> > > ÃÂ
> > > Tom,
> > >
> > > BTW - Another handy jog mode is one in Mach3 called "velocity" mode, in which the speed at which the axis moves is a function of how fast you spin the MPG. At very slow MPG rates, it jogs in small steps, then larger steps, the constant slow speed, the faster and faster, the faster you spin, all the way up to full rapid speed. This is the default mode in my pendant, as it makes it easy to move a large distance, but still position close to your target position. This is probably the most-used jog mode. And, in fact, I've never once had to set an explicit jog rate, other than for the "continuous" mode I described previously.
> > >
> > > Regards,
> > > Ray L.
> > >
> > > --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> > > >
> > > > Hi Ray,
> > > > ÃâÃÂ
> > > > I don't know of anyone else who has requested such a thing or more likely I don't understand.ÃâàCould you be a bit more mathematically precise in your description?ÃâàDo you really want the axis velocity to be independent of the MPG rate?ÃâàWhat is your definition of "stops changing"?ÃâÃÂ
> > > > ÃâÃÂ
> > > > But anyway you can change speed using the Jog() command.ÃâàIf you command one speed and then later want a different speed just command the new speed.ÃâàKFLOP will compute a new 3rd order blended trajectory to the new speed using the Max Acceleration and Max Jerk settings for the axis.ÃâàThe new speed can be zero to stop, or the oppposite sign to reverse.
> > > > ÃâÃÂ
> > > > Regards
> > > > TK
> > > > ÃâÃÂ
> > > > ÃâÃÂ
> > > > ÃâÃÂ
> > > >
> > > > From: himykabibble <jagboy@>
> > > > To: DynoMotion@yahoogroups.com
> > > > Sent: Monday, November 21, 2011 5:04 PM
> > > > Subject: [DynoMotion] Jogging Controls
> > > >
> > > >
> > > > ÃâÃÂ
> > > > I'm ready to work on my pendant code, but I'm clearly not understanding the jog controls completely. Looking at the Init3AnalogPlusMPG.c example, I understand the MPG code, except I don't see where it's actually doing the move. It's changing ch?->Dest based on the MPG, but that does not appear to me to actually cause an axis move. When I try it here, it appears to simply instantly update the axis position. So where does it happen, and how do I control the speed?
> > > >
> > > > Also, I want to support "continuous mode", in which an axis will move at a constant speed as long as the MPG is changing, regardless of the rate, and stop as soon as the MPG stops changing. This feature is invaluable for doing "manual" milling. I can do this with the Jog() function, but how do I control the jog velocity? Do I just over-write ch?->Vel?
> > > >
> > > > Regards,
> > > > Ray L.
> > > >
> > >
> >
> >
> >
> >
> >
> > #define
> >
>
|
|
| | | | | | | | | | | |